﻿using System;

namespace UnityEngine.PostProcessing
{
	// Token: 0x020000D6 RID: 214
	[Serializable]
	public class AmbientOcclusionModel : PostProcessingModel
	{
		// Token: 0x1700007E RID: 126
		// (get) Token: 0x060005E9 RID: 1513 RVA: 0x000247B4 File Offset: 0x000229B4
		// (set) Token: 0x060005EA RID: 1514 RVA: 0x000247BC File Offset: 0x000229BC
		public AmbientOcclusionModel.Settings settings
		{
			get
			{
				return this.m_Settings;
			}
			set
			{
				this.m_Settings = value;
			}
		}

		// Token: 0x060005EB RID: 1515 RVA: 0x000247C8 File Offset: 0x000229C8
		public override void Reset()
		{
			this.m_Settings = AmbientOcclusionModel.Settings.defaultSettings;
		}

		// Token: 0x04000546 RID: 1350
		[SerializeField]
		private AmbientOcclusionModel.Settings m_Settings = AmbientOcclusionModel.Settings.defaultSettings;

		// Token: 0x020000D7 RID: 215
		public enum SampleCount
		{
			// Token: 0x04000548 RID: 1352
			Lowest = 3,
			// Token: 0x04000549 RID: 1353
			Low = 6,
			// Token: 0x0400054A RID: 1354
			Medium = 10,
			// Token: 0x0400054B RID: 1355
			High = 16
		}

		// Token: 0x020000D8 RID: 216
		[Serializable]
		public struct Settings
		{
			// Token: 0x1700007F RID: 127
			// (get) Token: 0x060005EC RID: 1516 RVA: 0x000247D8 File Offset: 0x000229D8
			public static AmbientOcclusionModel.Settings defaultSettings
			{
				get
				{
					return new AmbientOcclusionModel.Settings
					{
						intensity = 1f,
						radius = 0.3f,
						sampleCount = AmbientOcclusionModel.SampleCount.Medium,
						downsampling = true,
						forceForwardCompatibility = false,
						ambientOnly = false,
						highPrecision = false
					};
				}
			}

			// Token: 0x0400054C RID: 1356
			[Range(0f, 4f)]
			[Tooltip("Degree of darkness produced by the effect.")]
			public float intensity;

			// Token: 0x0400054D RID: 1357
			[Tooltip("Radius of sample points, which affects extent of darkened areas.")]
			[Min(0.0001f)]
			public float radius;

			// Token: 0x0400054E RID: 1358
			[Tooltip("Number of sample points, which affects quality and performance.")]
			public AmbientOcclusionModel.SampleCount sampleCount;

			// Token: 0x0400054F RID: 1359
			[Tooltip("Halves the resolution of the effect to increase performance.")]
			public bool downsampling;

			// Token: 0x04000550 RID: 1360
			[Tooltip("Forces compatibility with Forward rendered objects when working with the Deferred rendering path.")]
			public bool forceForwardCompatibility;

			// Token: 0x04000551 RID: 1361
			[Tooltip("Enables the ambient-only mode in that the effect only affects ambient lighting. This mode is only available with the Deferred rendering path and HDR rendering.")]
			public bool ambientOnly;

			// Token: 0x04000552 RID: 1362
			[Tooltip("Toggles the use of a higher precision depth texture with the forward rendering path (may impact performances). Has no effect with the deferred rendering path.")]
			public bool highPrecision;
		}
	}
}
